package org.example.erp.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 生产任务表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProTask {
    /**
     * 任务ID
     */
    @TableId(type = IdType.AUTO)
    private Integer taskId;

    /**
     * 任务编号
     */
    private String taskCode;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 生产工单ID
     */
    private Integer workorderId;

    /**
     * 生产工单编号
     */
    private String workorderCode;

    /**
     * 工单名称
     */
    private String workorderName;

    /**
     * 工作站ID
     */
    private Integer workstationId;

    /**
     * 工作站编号
     */
    private String workstationCode;

    /**
     * 工作站名称
     */
    private String workstationName;

    /**
     * 工艺编号
     */
    private String routeCode;

    /**
     * 工序编码
     */
    private String processCode;

    /**
     * 工序名称
     */
    private String processName;

    /**
     * 产品物料ID
     */
    private Integer itemId;

    /**
     * 产品物料编码
     */
    private String itemCode;

    /**
     * 产品物料名称
     */
    private String itemName;

    /**
     * 规格型号
     */
    private String specification;

    /**
     * 单位
     */
    private String unitOfMeasure;

    /**
     * 排产数量
     */
    private Integer quantity;

    /**
     * 已生产数量
     */
    private Integer quantityProduced;

    /**
     * 合格品数量
     */
    private Integer quantityQuanlify;

    /**
     * 不良品数量
     */
    private Integer quantityUnquanlify;

    /**
     * 调整数量
     */
    private Integer quantityChanged;

    /**
     * 客户ID
     */
    private Integer clientId;

    /**
     * 客户编码
     */
    private String clientCode;

    /**
     * 客户名称
     */
    private String clientName;

    /**
     * 开始生产时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 生产时长
     */
    private Integer duration;

    /**
     * 完成生产时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 甘特图显示颜色
     */
    private String colorCode;

    /**
     * 需求日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date requestDate;
}